<template>
  <div id="app">
    <router-view v-if="isRouterAlive" />
  </div>
</template>

<script>
  export default {
    name: 'app',
    provide() {
      return {
        reload: this.reload,
      }
    },
    // 处理刷新丢失数据问题
    created() {
      // 在页面加载时读取sessionStorage里的状态信息
      if (sessionStorage.getItem("store")) {
        this.$store.replaceState(Object.assign({}, this.$store.state, JSON.parse(sessionStorage.getItem("store"))))
      }

      // 在页面刷新时将vuex里的信息保存到sessionStorage里
      window.addEventListener("beforeunload", () => {
        sessionStorage.setItem("store", JSON.stringify(this.$store.state))
      })
    },
  
    data() {
      return {
        isRouterAlive: true
      }
    },

    methods: {
      reload() {
        this.isRouterAlive = false;
        this.$nextTick(function () {
          this.isRouterAlive = true;
        });
      }
    },
  }
</script>

<style>
  * {
    font-family: "微软雅黑";
  }

  html,
  body {
    /* 撑满页面 */
    height: 100%;
    margin: 0;
    padding: 0;
  }

  #app {
    height: 100%;
    font-family: Avenir, Helvetica, Arial, sans-serif;
    /* 抗锯齿渲染，让字体看着更清晰 */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    /* 默认所有盒子中的文字居中 */
    text-align: center;
    color: #2c3e50;

    
  }
</style>